/**
 * 
 */
package com.lucker.common.util;


/**
  * 规则：<br>
 * 1开头，表示成功<br>
 * 2开头，标示失败
 */
public enum ErrorEnum{

	/***
	  *     特别说明：
	 * 10000 表示请求成功
	 * 9XXXX 表标全局错误,针对该 类型错误,客服端APP需要做全局监听, 例如在服务器端用户权限过滤器中，
	   *  判断出来一个用户，TOKEN失效了, 这种错误，在客户端需要做全局判断，客户端需要优先判断该编码，然后再按照API接口文档中的说明进行判断。典型场景 （登录信息失效, 版本升级， 系统 维护 ）
	 * 
	   * 其它错误码用户表示业务错误，客户端会判断完上面的 全局错误之后，按接口文档进行错误判断。    
	 * 
	 * 
	 * /
	
	/******************/
	C99997(99997,"当前客户端版本小于最低版本号,需强制升级至最新版本"),
	C99998(99998,"系统当前正在维护中"),
	C99999(99999,"版本兼容处理"),
	C99996(99996,"暂停服务"),
	
	
	/*****请求成功*****/
	C10000(10000,"成功");
	
	
	private int code;
	private String message;
	private String desc;

	private ErrorEnum(int code,String message) {
        this.code = code;
        this.message = message;
    }

	private ErrorEnum(int code,String message,String desc) {
        this.code = code;
        this.message = message;
        this.desc = desc;
    }
	
	public int getCode() {
		return code;
	}

	public String getMessage() {
		return message;
	}
	
	public String getDesc() {
		if(desc == null){
			return message;
		}
		return desc;
	}

	public static ErrorEnum getError(int code) {
		for(ErrorEnum error : ErrorEnum.values()) {
			if(error.code==code) {
				return error;
			}
		}
		return null;
	}
	
}
